home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Modules / BackSpaceModules / Source / CreepyFace / CreepyFaceView.h < prev    next >
Text File  |  1994-03-23  |  2KB  |  84 lines

  1. #import <appkit/appkit.h>
  2. #import "CFWireFrame.h"
  3.  
  4. #import "Thinker.h"
  5.  
  6.  
  7. // this code is copyright Darcy Brockbank, 1993
  8. //
  9. // You may freely reuse and distribute this code in any way shape or
  10. // form, provided that this notice stays intact.
  11. //
  12. // darcy@hasc.ca, samurai@cs.mcgill.ca
  13. //
  14. // StefView was implemented out of WorldSpaceView and retains some of the
  15. // movement properties...
  16. //
  17. // The code for WorldSpaceView was written by Sam Streeper at CreepyFace, I think,
  18. // and there were two other contributors, but I can't find their names in the
  19. // source for it.
  20. //
  21. // CreepyFaceView shows a simple (ha!) spinning CreepyFace logo, in full 3D. The 3D code
  22. // came from an app I wrote a long time ago called "CFWireFrame", and so the code
  23. // is pretty scary. As well, this thing is only a quick hack, though a nice one.
  24. //
  25. // This thing has room for improvement, and if you do so, send me a copy!
  26. //
  27. // - darcy
  28.  
  29. typedef struct { float l,b,r,t; } BRECT;
  30.  
  31. @interface CreepyFaceView:View
  32. {
  33.     id buffer;
  34.     id spot;
  35.     id clearSpot;
  36.     id sbuffer;
  37.     float    xpos;
  38.     float    ypos;
  39.     BRECT old;
  40.     NXPoint ballTo;
  41.     NXPoint maxCoord;
  42.     NXPoint redrawTo;
  43.     NXRect redraw;
  44.     NXSize oldSize;
  45.     int framesPerSecond;
  46.     int currentFrame;
  47.     NXSize imageSize;
  48.     BStimeval now, then;
  49.     BStimeval nextRotationTime;
  50.     id sharedInspectorPanel;
  51.     
  52.     Axis axis;
  53.     Direction spin;
  54.     
  55.     Origin worldOrigin,localOrigin,curOrigin;
  56.     float currentZoom;
  57.     id list;
  58.     float translationRate;
  59.     NXColor backgroundColour;
  60. }
  61.  
  62. - loadDir:(const char *)d;
  63. - draw;
  64. - oneStep;
  65. - sizeTo:(NXCoord)width :(NXCoord)height;
  66. - newViewSize;
  67. - (const char *)windowTitle;
  68. - loadWorld:(const char *)dir;
  69.  
  70. - free;
  71. - tryToChangeCentre;
  72. - initFrame:(const NXRect *)rect;
  73. - firstObject;
  74. - setTranslationRate:sender;
  75. - setZoom:sender;
  76. - rotateZ:sender;
  77. - rotatez:sender;
  78. - rotateX:sender;
  79. - rotatex:sender;
  80. - rotateY:sender;
  81. - rotatey:sender;
  82. - addThisObject:anObject;
  83. @end
  84.